Systems and methods for processing images based on criteria

ABSTRACT

A computer-implemented method for processing images may include obtaining at least one image for analyzing; inputting the at least one image to at least one of a plurality of image plugins; analyzing the at least one image via the at least one of the plurality of image plugins; determining metadata related to the at least one image based on the at least one of the plurality of image plugins; filtering the at least one image based on one or more rule sets to generate at least one filtered image; sorting the at least one filtered image to generate at least one sorted image; displaying the at least one sorted image based on an organizational sequence of a webpage; displaying navigation controls via the webpage; and displaying the at least one sorted image according to a user interaction with the navigation controls on the webpage.

TECHNICAL FIELD

Various embodiments of the present disclosure relate generally toprocessing images to determine metadata, and more specifically, toprocessing images of vehicles for vehicle related metadata.

BACKGROUND

Purchasers of relatively expensive items, such as cars, real estate,mattresses, boats, computers, etc. may conduct part or all of theirshopping for such items online, via the Internet. In researching andcompleting such a purchase, a consumer may visit multiple websites insearch of appropriate information. For example, consumers may viewinventory information or perform other research regarding a purchase onmultiple websites. However, different websites may vary both in themanner in which they present information and in the scope of theinformation presented. Thus, a user may be unable to find certaininformation on a particular website and/or may be unsure of where suchinformation is located.

Furthermore, in areas of commerce such as those described above,purchasers may view inventory information via pictures merchants provideonline. The disorganization of images presented online may beprohibitive for an individual consumer to obtain, analyze, and/orsynthesize the information accurately. Thus, consumers may makesub-optimal purchase decisions due to a lack of accessible and/ordigestible information.

The present disclosure is directed to addressing one or more of theseabove-referenced challenges. The background description provided hereinis for the purpose of generally presenting the context of thedisclosure. Unless otherwise indicated herein, the materials describedin this section are not prior art to the claims in this application andare not admitted to be prior art, or suggestions of the prior art, byinclusion in this section.

SUMMARY

According to certain aspects of the disclosure, non-transitory computerreadable media, systems, and methods are disclosed for processing imagesfor metadata. Each of the examples disclosed herein may include one ormore of the features described in connection with any of the otherdisclosed examples.

In one example, a computer-implemented method for processing images mayinclude obtaining, by one or more processors, at least one image foranalyzing; inputting, by the one or more processors, the at least oneimage to at least one of a plurality of image plugins; analyzing, by theone or more processors, the at least one image via the at least one ofthe plurality of image plugins; determining, by the one or moreprocessors, metadata related to the at least one image based on the atleast one of the plurality of image plugins; filtering, by the one ormore processors, the at least one image based on one or more rule setsto generate at least one filtered image; sorting, by the one or moreprocessors, the at least one filtered image to generate at least onesorted image; displaying, by the one or more processors, the at leastone sorted image based on an organizational sequence of a webpage;displaying, by the one or more processors, navigation controls via thewebpage; and displaying, by the one or more processors, the at least onesorted image according to a user interaction with the navigationcontrols on the webpage.

According to another aspect of the disclosure, a computer system forprocessing images may include a memory having processor-readableinstructions stored therein; and at least one processor configured toaccess the memory and execute the processor-readable instructions toperform a plurality of functions. The functions may include obtaining atleast one image; analyzing the at least one image via at least one of aplurality of image plugins; determining metadata related to the at leastone image based on the analyzing the at least one image; filtering theat least one image based on a predetermined metadata to generate atleast one filtered image; sorting the at least one filtered image togenerate at least one sorted image; displaying the at least one sortedimage based on an organizational sequence of a webpage; displayingnavigation controls on the webpage; and displaying the at least onesorted image according to a user interaction with the navigationcontrols on the webpage.

In another aspect of the disclosure, a computer-implemented method forprocessing images may include training, by one or more processors, atleast one of a plurality of image plugins by analyzing pre-labeledimages to determine metadata related to the pre-labeled images;comparing, by the one or more processors, the metadata determined by theat least one of the plurality of image plugins to the pre-labeledimages; obtaining, by the one or more processors, at least one image;analyzing, by the one or more processors, the at least one image via theat least one of the plurality of image plugins; determining, by the oneor more processors, metadata related to the at least one image via theat least one of the plurality of image plugins; filtering, by the one ormore processors, the at least one image based on one or morepredetermined metadata to generate at least one filtered image; sorting,by the one or more processors, the at least one filtered image togenerate at least one sorted image; displaying, by the one or moreprocessors, the at least one sorted image based on an organizationalsequence of a webpage; displaying, by the one or more processors,navigation controls on the webpage; and displaying, by the one or moreprocessors, the at least one sorted image according to a userinteraction with the navigation controls on the webpage.

Additional objects and advantages of the disclosed embodiments will beset forth in part in the description that follows, and in part will beapparent from the description, or may be learned by practice of thedisclosed embodiments.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the disclosed embodiments, as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate various exemplary embodiments andtogether with the description, serve to explain the principles of thedisclosed embodiments.

FIG. 1 depicts an exemplary environment in which systems, methods, andother aspects of the present disclosure may be implemented.

FIG. 2 depicts an exemplary block diagram of an image metadatadetermining process, according to one aspect of the present disclosure.

FIG. 3 depicts an exemplary block diagram of an image metadata filteringprocess, according to one aspect of the present disclosure.

FIG. 4 depicts an exemplary block diagram of an image metadata sortingprocess, according to one aspect of the present disclosure.

FIG. 5 depicts an exemplary user interface of a user device, accordingto one aspect of the present disclosure.

FIG. 6 depicts an exemplary flow diagram of a method for imageprocessing, according to aspects of the present disclosure.

FIG. 7 depicts an exemplary computer device or system, in whichembodiments of the present disclosure, or portions thereof, may beimplemented.

DETAILED DESCRIPTION

The subject matter of the present description will now be described morefully hereinafter with reference to the accompanying drawings, whichform a part thereof, and which show, by way of illustration, specificexemplary embodiments. An embodiment or implementation described hereinas “exemplary” is not to be construed as preferred or advantageous, forexample, over other embodiments or implementations; rather, it isintended to reflect or indicate that the embodiment(s) is/are “example”embodiment(s). Subject matter can be embodied in a variety of differentforms and, therefore, covered or claimed subject matter is intended tobe construed as not being limited to any exemplary embodiments set forthherein; exemplary embodiments are provided merely to be illustrative.Likewise, a reasonably broad scope for claimed or covered subject matteris intended. Among other things, for example, subject matter may beembodied as methods, devices, components, or systems. Accordingly,embodiments may, for example, take the form of hardware, software,firmware, or any combination thereof (other than software per se). Thefollowing detailed description is, therefore, not intended to be takenin a limiting sense.

Throughout the specification and claims, terms may have nuanced meaningssuggested or implied in context beyond an explicitly stated meaning.Likewise, the phrase “in one embodiment” as used herein does notnecessarily refer to the same embodiment and the phrase “in anotherembodiment” as used herein does not necessarily refer to a differentembodiment. It is intended, for example, that claimed subject matterinclude combinations of exemplary embodiments in whole or in part.

The terminology used below may be interpreted in its broadest reasonablemanner, even though it is being used in conjunction with a detaileddescription of certain specific examples of the present disclosure.Indeed, certain terms may even be emphasized below; however, anyterminology intended to be interpreted in any restricted manner will beovertly and specifically defined as such in this Detailed Descriptionsection. Both the foregoing general description and the followingdetailed description are exemplary and explanatory only and are notrestrictive of the features, as claimed.

In this disclosure, the term “based on” means “based at least in parton.” The singular forms “a,” “an,” and “the” include plural referentsunless the context dictates otherwise. The term “exemplary” is used inthe sense of “example” rather than “ideal.” The term “or” is meant to beinclusive and means either, any, several, or all of the listed items.The terms “comprises,” “comprising,” “includes,” “including,” or othervariations thereof, are intended to cover a non-exclusive inclusion suchthat a process, method, or product that comprises a list of elementsdoes not necessarily include only those elements, but may include otherelements not expressly listed or inherent to such a process, method,article, or apparatus. Relative terms, such as, “substantially” and“generally,” are used to indicate a possible variation of ±10% of astated or understood value.

In the following description, embodiments will be described withreference to the accompany drawings. Various embodiments of the presentdisclosure relate generally to methods and systems for processing imagesof vehicles for metadata. For example, various embodiments of thepresent disclosure relate to determining the metadata of each of aplurality of images of vehicles. In some arrangements, the plurality ofimages of vehicles may be presented online at a vehicle aggregatorservice provider for purchasers to browse and research for potentialpurchases.

In order for a vehicle aggregator service provider to display images ofvehicles, the service provider may need to know information pertainingto the subject of each image. Vehicle aggregator service providersreceive large quantities of images from independent vehicle dealers,each of whom may transmit images without any detectable or attempteduniformity. For example, vehicle dealers may transmit images of placeholder vehicles (e.g., dealership logo images, etc.), generic stockimages, or images without any identifiable information pertinent to aspecified product. If the vehicle aggregator service provider does notknow what is being presented within each of the images, then the serviceprovider may provide incorrect information, may provide insufficientinformation, and/or may cause a negative experience for a userresearching for vehicles. Furthermore, it may be desirable for theservice provider to know what is being presented within each of theimages (e.g., image of an interior of the vehicle, image of an exteriorof the vehicle, image of a vehicle's insignia) so that the images may bepresented by the vehicle aggregator service provider in a uniform mannerfor branding purposes, site organization/planning purposes, efficiencypurposes, and/or to induce positive user interaction with the vehicleaggregator service provider.

Therefore, a need exists to process images supplied by independentvehicle dealers so that the vehicle aggregator service provider maypresent the images in an orderly and consistent manner, removeunnecessary or useless images, or identify key features within an imagefor labeling.

Referring now to the appended drawings, FIG. 1 shows an exemplaryenvironment 100 in which the processing of merchant-supplied vehicleimages may be implemented. Environment 100 may include a user device 101associated with, or operated by, a user, one or more merchants 102,vehicle aggregator service provider 103, image database 104 and metadatadatabase 105. Various components of environment 100 may be incommunication with each other via network 110 (e.g., the Internet). Forexample, the user device 101 may communicate with the vehicle aggregator103 via network 110, and the merchants 102 may communicate with thevehicle aggregator 103 via network 110. The network 110 may be anysuitable network or combination of networks and may support anyappropriate protocol suitable for communication of data between variouscomponents in the system environment 100. The network may include apublic network (e.g., the Internet), a private network (e.g., a networkwithin an organization or intranet), or a combination of public and/orprivate networks.

The user device 101 may be operated by one or more users to performbrowsing, research, purchases, and/or transactions at an onlineenvironment. Examples of user device 101 may include smartphones,wearable computing devices, tablet computers, laptops, desktopcomputers, and on-board vehicle computer systems.

Each merchant 102 may be an entity that provides products. In thisdisclosure, the term “product,” in the context of products offered by amerchant, encompasses both goods and services, as well as products thatare a combination of goods and services. A merchant may be, for example,vehicle dealer, vehicle reseller, vehicle manufacture, and/or other typeof entity that provides products that a user may purchase.

The vehicle aggregator service provider 103 may be an entity thatreceives images of vehicles for sale from the merchant 102 and hosts theimages on a website for users to browse and research for availablevehicles. In some examples, vehicle aggregator service provider 103 mayinclude one or more merchant service providers that provide merchants102 with the ability to process financial loans, such as vehicle loans.

Image database 104 may include images of vehicles supplied by merchants102. The images of vehicles may be for vehicles that are available forsale by the merchant 102. Each available vehicle may have a plurality ofpictures documenting the features of the vehicle. For example, imagesmay include the outside of the vehicle, the interior of the vehicle,special features and options, etc. Each image may also have anassociated identification number stored in the database. Metadatadatabase 105 may include metadata associated with each of the images ofvehicles stored in the image database 104. Metadata stored in metadatadatabase 105 may include features or information identified from eachimage by the image processing process. For example metadata may includethe make, model, color, features/options, and various other informationidentifiable from, or embedded within, the images. The image processingprocess and metadata will be explained in further detail, below. It isunderstood that each of image database 104 and metadata database 105 mayinclude a plurality of databases in communication with one another,and/or image database 104 and metadata database 105 may be combined intoa single (e.g., only one) database.

Environment 100 may include one or more computer systems configured togather, process, transmit, and/or receive data. In general, wheneverenvironment 100 is described as performing an operation of gathering,processing, transmitting, or receiving data, it is understood that suchoperation may be performed by a computer system thereof. In general, acomputer system may include one or more computing devices, as describedin connection with FIG. 7 below.

FIG. 2 depicts an exemplary block diagram 200 of an image metadatadetermining process, according to one aspect of the present disclosure.Diagram 200 may include images 201, image labeler 205, and labeledmetadata 210. Image labeler 205 may include a plurality of imageplugins. One plugin may be created to identify a singular object in theimages, or one plugin may be created to identify a plurality of objectsin the images. For example, as illustrated in FIG. 2, labeler 205 mayinclude plugin 206 that may identify if a vehicle is present in thepicture, plugin 207 that may identify if the image is of the exterior ofthe vehicle or interior of the vehicle, and plugin 208 may identify thecolor of the vehicle in the image. Other plugins, while not illustratedin diagram 200, may also be included. For example a plugin may becreated to identify the make of the vehicle in the image, one plugin maybe created to identify the model of the vehicle in the image, one pluginmay be created to identify the angle of the vehicle in the image (forexample, front of the vehicle, side profile of the vehicle, quarterprofile of the vehicle, rear of the vehicle), one plugin may be createdto identify the year of the vehicle in the image, and one plugin may becreated to identify the quality of the image (for example, low or highresolution image). Other plugins may also be created to identify anyfeatures that may be available in a vehicle.

The plugins may be created using machine learning processes that takesan image as an input and process the image to identify objects that maybe present in the image. Plugins may use any object detection model orimage recognition model or any appropriate computer vision approach toprocess the images. Each of the plugins may be trained using pre-labeledimages either already present in image database 104 or metadata database105, or supplied by third parties. Training of the plugins may beperformed as follows: (1) the plugin may retrieve a pre-labeled image,for example an image of a black vehicle labeled “black vehicle”, and (2)via machine learning, the plugin may process the pre-labeled image so asto learn to identify black vehicles in an image. Each plugin may betrained using a specific pre-labeled image (or a specific plurality ofpre-labeled images). The plugins, once generated, may be continuouslytrained via images supplied by the merchants 102.

As illustrated in FIG. 2, image labeler 205 may be made up of aplurality of plugins, each plugin may be removed from labeler 205, ornew plugins may be added to labeler 205 at any point convenient to thevehicle aggregator 103. As such, labeler 205 may be deployed to processimages as soon as plugins are introduced and created without delaying towait for all plugins to be created. As new plugins are introduced andcreated they may be added to the labeler 205 without affecting theoperation of the labeler 205. In the example depicted in FIG. 2, thelabeler 205 may process each image sequentially through each of theplurality of plugins. For example, image 201 may be retrieved and fedinto labeler 205 for metadata processing. The image 201 may proceed tothe plugin 206 to identify if a vehicle is present in the image. Afterprocessing at plugin 206, the image 201 may be transmitted to plugin 207to identify whether the image 201 illustrates an exterior or an interiorof a vehicle. After processing at plugin 207, the image 201 may betransmitted to plugin 208 to identify a color of the vehicle present inthe image 201. After the image is processed by all the plugins oflabeler 205, labeled metadata 210 may be generated for the image. Thelabeled metadata 210 may include information (e.g., labels) determinedfrom the image 201 by the plugins (e.g., plugins 206-208). For example,labeled metadata 210 generated for image 201 may indicate that theexterior of a black vehicle is present in the image 201. Labeledmetadata 210 may also indicate the image ID for image 201 forassociating image 201 with labeled metadata 210. Labeled metadata 210,once determined, may be stored in the metadata database 105.

In another embodiment, each of the plugins within the labeler 205 may belocated in a distributed fashion and each of the plugins may process thesame image in parallel. For example, image 201 may be retrieved and fedinto plugin 206, plugin 207, and plugin 208 at the same time orsubstantially similar time for processing. Each plugin may then performprocessing and identify the object of the image 201. Once the image 201has been processed by the plugins (e.g., plugins 206-208), thedetermined information may be used to generate labeled metadata 210.Labeled metadata 210 may then be stored in the metadata database 105.

FIG. 3 depicts an exemplary block diagram 300 of an image metadatafiltering process, according to one aspect of the present disclosure.Diagram 300 may include metadata filter 305 for filtering labeledmetadata 210 into filtered metadata 310. Metadata filter 305 may includea plurality of components. One such component may be generated to filtera singular data element of labeled metadata 210, or one component may becreated to filter a plurality of data elements of metadata 210. Forexample, as illustrated in FIG. 3, filter 305 may include component 306that may filter labeled metadata 210 by identifying whether the image islabeled as having a vehicle present in the image. Additionally, filter305 may include component 307 that may filter labeled metadata 210 byidentifying whether the image is labeled as showing the interior of thevehicle. Other components, while not illustrated in diagram 300, mayalso be included. By way of non-limiting example, a component may begenerated to filter labeled metadata 210 based on (1) the identificationof the make of the vehicle in the image, (2) the identification of themodel of the vehicle in the image, (3) the identification of the angleof the vehicle in the image (for example, front of the vehicle, sideprofile of the vehicle, quarter profile of the vehicle, rear of thevehicle, etc.), (4) the identification of the year of the vehicle in theimage, and/or (5) the identification of the quality of the image (forexample, low or high resolution image). Other components may also becreated to filter labeled metadata 210 based on the identification ofany other labeled feature of the vehicle without departing from thescope of the present application.

As illustrated in exemplary FIG. 3, metadata filter 305 may include aplurality of components. Each such component may be updated or removedfrom filter 305, or a new component may be added to filter 305 at anypoint convenient to the vehicle aggregator 103. As such, the filter 305may be deployed to process metadata as soon as components are introducedwithout delaying to wait for all components to be created. As newcomponents are introduced and created they may be added to the filter305 without affecting the operation of the filter 305. In the exampledepicted in FIG. 3, the filter 305 may filter each labeled metadata 210sequentially through each of the plurality of components. For example,labeled metadata 210 may be retrieved and fed into filter 305 formetadata filtering. The labeled metadata 210 may proceed to thecomponent 306 to identify if the labeled metadata 210 indicates avehicle is present in the image. After processing at component 306, thelabeled metadata 210 may be transmitted to component 307 to identify ifthe labeled metadata 210 indicates that the interior of the vehicle ispresent in the image. In some arrangements, labeled metadata 210 neednot be filtered by all components of filter 305. For example, ifcomponent 306 determined that the image does not contain a vehicle, thenthere may be no need to further process the labeled metadata 210 viacomponent 307. Accordingly, in some arrangements, labeled metadata 210may be processed sequentially by each applicable component of labeler,which may be less than all of the components of filter 305. After thelabeled metadata 210 is filtered by all the components of filter 305 (orall of the applicable components of filter 305), the filtered metadata310 may be output by filter 305. Filtered metadata 310 may be stored inthe metadata database 105. Metadata database 105 may be configured tostore filtered metadata 310 based on the results of the filteringprocess. For example, the metadata database 105 may store all of thefiltered metadata 310 of images with no vehicles present together, andstore all of the filtered metadata 310 of images with vehicles presenttogether. Likewise the metadata database 105 may store all of thefiltered metadata 310 of images with no vehicle interiors showntogether, and store all of the filtered metadata 310 of images withvehicle interiors shown together. In another embodiment, all of thefiltered metadata 310 may include a data field that indicates theresults of the different filtering components of filter 305 and may bestored together in the database 105.

In another embodiment, each of the components of filter 305 may belocated in a distributed fashion and each of the components may filterthe labeled metadata 210 in parallel. For example, labeled metadata 210may be retrieved and fed into component 306 and component 307 at thesame time or substantially similar time for filtering via filter 305.Each component may then filter the labeled metadata 210 into filteredmetadata 310Filtered metadata 310 may then be stored in the metadatadatabase 105, as noted above.

FIG. 4 depicts an exemplary block diagram 400 of an image metadatasorting process, according to one aspect of the present disclosure.Diagram 400 may include a metadata sorter 405 for sorting filteredmetadata 310 into sorted metadata 410. Metadata sorter 405 may include aplurality of sorter components, for example, components 406, 407, and408 configured to sort the filtered metadata 310 based on whether theimage of the vehicle is a side-view of the vehicle, a front-view of thevehicle, or a back-view of the vehicle, respectively. Other sortercomponents, while not illustrated in diagram 400, may also be included.For example, a component may be generated to sort filtered metadata 310based on (1) the identification of the make of the vehicle in the image,(2) the identification of the model of the vehicle in the image, and/or(3) the identification of other angles of the vehicle in the image (forexample, quarter profile of the vehicle, top-view of the vehicle, etc.).Other components may also be created to sort filtered metadata 310 basedon the identification of any other labeled feature of the vehiclewithout departing from the scope of the present application.

Metadata sorter 405 may be configured to sort the filtered metadata 310based on the order (e.g., the “sorting sequence”) of the sortercomponents in sorter 405 (e.g., components 406, 407, and 408 discussedabove). As such, filtered metadata 310 may be retrieved from metadatadatabase 105, and processed by the sorter 405. After processing, theimages of the vehicle may be sorted such that images of the side of thevehicle will appear first, followed by images of the front of thevehicle, and then followed by images of the back of the vehicle. Thesorted images may then be stored in the image database 104 in the orderof sorting sequence and/or may be output on a user interface of the userdevice 101 in the order of the sorting sequence. The user interface maybe an internet browser or may be an application executed on the userdevice 101.

As illustrated in exemplary FIG. 4, metadata sorter 405 may be made upof a plurality of components. Each component may be removed from sorter405, or new component may be added to sorter 405 at any point convenientto the vehicle aggregator 103. As such, sorter 405 may be deployed tosort metadata as soon as components are introduced without delaying towait for all components to be created. As new components are introducedand created they may be added to the sorter 405 without affecting theoperations of the sorter 405.

FIG. 5 depicts an exemplary user interface 500 of the user device 101,according to one aspect of the present disclosure. The user interface500 may be an internet browser or may be an application executed on theuser device 101. User interface 500 may be configured to display thesorted images of vehicles to a user and may include thebrowser/application 510, service provider identification area 515, mainimage display area 520, secondary image display area 525, and navigationcontrols 505. As depicted in user interface 500, the images of thevehicle are sorted in the order represented by FIG. 4 (e.g., the sortingsequence). For example, the images of the vehicle are arranged in thefollowing order: a side-view image 521 of the vehicle is displayedfirst, followed by a front-view image 522 of the vehicle, and thenfollowed by a back-view image of the vehicle 523. The user may use thenavigation controls 505 (e.g., forward and backward arrows) to navigatebetween the images displayed in the secondary image display area 525, orthe user may directly interact with a specific image within thesecondary image display area 525 (e.g., via a mouse or touchinteraction). Once an image is selected by the user using either thenavigation controls 505 or direct interaction, then the image may bedisplayed in the main image display area 520. The main image displayarea 520 may display the image at a larger size compared to the imagesin the secondary image display area 525. The images in the secondaryimage display area 525 may be, for example, thumbnail images of therespective vehicle.

FIG. 6 depicts an exemplary flow diagram of a method 600 for imageprocessing, according to aspects of the present disclosure. Method 600may begin at step 601 where the vehicle aggregator service provider 103may train image plugins to analyze pre-labeled images. The pre-labeledimages, as discussed above, may contain previously determined (e.g.,known) metadata. At step 602, a comparison may be performed of themetadata determined by the image plugins to the known metadata of thepre-labeled images to fix any errors and complete the training process.Upon the completion of plugin training at step 602, at step 603 newimages of vehicles may be obtained to analyze for metadata. The imagesof vehicles may be retrieved from the image database 104. Upon obtainingvehicle images at step 603, the images may be input into the trainedimage plugins at step 604. Upon receiving the vehicle images, the imageplugins may analyze the vehicle images at step 605 to identify metadataassociated with the images. At step 606 the metadata associated witheach of the vehicle images may be determined. The metadata may berelated to the subject vehicle, for example, vehicle make, vehiclemodel, vehicle year, vehicle color, vehicle picture angle, vehicleoptions, etc. The metadata may also be related to the image file, suchas image file size, image resolution, image location, image file type,etc. It is understood, that step 606 may be performed in a mannersimilar to that as described above in connection with FIG. 2. Forexample, determining the metadata associated with the vehicle images mayinclude inputting the images into an image labeler 205, and analyzingthe images via components 206, 207, 208, etc., to generate labeledmetadata 210.

Upon the determination of metadata related to the vehicle images at step606, the images may then be filtered at step 607 based on a rule set.The rule set may be determined by the vehicle aggregator serviceprovider 103, or any other appropriate party. The rule set may comprisemetadata determined from the vehicle images. For example, images withoutany vehicles may be filtered out, or images below a certain size orresolution may be filtered out. Images that are filtered out may bedeleted from the image database 104, or may be stored in the imagedatabase 104 with an indication of the result of the filtering process.It is understood, that images may be filtered in a manner similar tothat as described above in connection with FIG. 3. For example, thelabeled metadata 210 of the images may be input into filter 305, andfiltered via one or more components 306, 307, etc., of filter 305 togenerate filtered metadata 310 associated with the images. In such away, the one or more components 306, 307, etc. of filter 305 may defineat least a portion of the rule set. Upon the completion of the filteringstep 607, the filtered images may then be sorted at step 608. Forexample, the filtered images may be sorted in a manner similar to thatas described above in connection with FIG. 4. That is, the filteredmetadata 310 of the images may be input into a sorter 405, and sortedvia one or more components 406, 407, 408, etc. of sorter 405 to generatesorted metadata 410 associated with the images. The sorting sequence maybe based on the same rule set (e.g. the order of the components) as thefilter rule set in step 607, or the sorting sequence may be based on adifferent rule set. The sorting step 608 may sort the images based onthe same order as the components 406, 407, 408, etc. For example, thesorting rule set may sort the images in the following order: image ofthe side of the vehicle first, then image of the front of the vehicle,followed by image of the rear of the vehicle. Upon the completion of thesorting step 608, the sorted images may be displayed on a webpage atstep 609. At step 610, navigation controls to navigate through thesorted images may be displayed on the webpage. The navigation controls(e.g., navigation controls 505 of FIG. 5) may be displayed next to theimages on the webpage (e.g., next to secondary image display area ofFIG. 5), or the navigation controls may be displayed as an overlay ontop of the images. At step 611, a user operating the user device 101 mayuse the navigation controls to view the sorted image displayed on thewebpage.

FIG. 7 depicts a high-level functional block diagram of an exemplarycomputer device or system, in which embodiments of the presentdisclosure, or portions thereof, may be implemented, e.g., ascomputer-readable code. In some implementations, the user device 101 maycorrespond to device 700. Additionally, each of the exemplary computerservers, databases, user interfaces, modules, and methods describedabove with respect to FIGS. 1-6 can be implemented via device 700 usinghardware, software, firmware, tangible computer readable media havinginstructions stored thereon, or a combination thereof and may beimplemented in one or more computer systems or other processing systems.Hardware, software, or any combination of such may implement each of theexemplary systems, user interfaces, and methods described above withrespect to FIGS. 1-6.

If programmable logic is used, such logic may be executed on acommercially available processing platform or a special purpose device.One of ordinary skill in the art may appreciate that embodiments of thedisclosed subject matter can be practiced with various computer systemconfigurations, including multi-core multiprocessor systems,minicomputers, mainframe computers, computers linked or clustered withdistributed functions, as well as pervasive or miniature computers thatmay be embedded into virtually any device.

For instance, at least one processor device and a memory may be used toimplement the above-described embodiments. A processor device may be asingle processor or a plurality of processors, or combinations thereof.Processor devices may have one or more processor “cores.”

Various embodiments of the present disclosure, as described above in theexamples of FIGS. 1-6, may be implemented using device 700. Afterreading this description, it will become apparent to a person skilled inthe relevant art how to implement embodiments of the present disclosureusing other computer systems and/or computer architectures. Althoughoperations may be described as a sequential process, some of theoperations may in fact be performed in parallel, concurrently, and/or ina distributed environment, and with program code stored locally orremotely for access by single or multi-processor machines. In addition,in some embodiments the order of operations may be rearranged withoutdeparting from the spirit of the disclosed subject matter.

As shown in FIG. 7, device 700 may include a central processing unit(CPU) 720. CPU 720 may be any type of processor device including, forexample, any type of special purpose or a general-purpose microprocessordevice. As will be appreciated by persons skilled in the relevant art,CPU 720 also may be a single processor in a multi-core/multiprocessorsystem, such system operating alone, or in a cluster of computingdevices operating in a cluster or server farm. CPU 720 may be connectedto a data communication infrastructure 710, for example, a bus, messagequeue, network, or multi-core message-passing scheme.

Device 700 also may include a main memory 740, for example, randomaccess memory (RAM), and also may include a secondary memory 730.Secondary memory 730, e.g., a read-only memory (ROM), may be, forexample, a hard disk drive or a removable storage drive. Such aremovable storage drive may comprise, for example, a floppy disk drive,a magnetic tape drive, an optical disk drive, a flash memory, or thelike. The removable storage drive in this example reads from and/orwrites to a removable storage unit in a well-known manner. The removablestorage unit may comprise a floppy disk, magnetic tape, optical disk,etc., which is read by and written to by the removable storage drive. Aswill be appreciated by persons skilled in the relevant art, such aremovable storage unit generally includes a computer usable storagemedium having stored therein computer software and/or data.

In alternative implementations, secondary memory 730 may include othersimilar means for allowing computer programs or other instructions to beloaded into device 700. Examples of such means may include a programcartridge and cartridge interface (such as that found in video gamedevices), a removable memory chip (such as an EPROM, or PROM) andassociated socket, and other removable storage units and interfaces,which allow software and data to be transferred from a removable storageunit to device 700.

Device 700 also may include a communications interface (“COM”) 760.Communications interface 760 allows software and data to be transferredbetween device 700 and external devices. Communications interface 760may include a modem, a network interface (such as an Ethernet card), acommunications port, a PCMCIA slot and card, or the like. Software anddata transferred via communications interface 760 may be in the form ofsignals, which may be electronic, electromagnetic, optical, or othersignals capable of being received by communications interface 760. Thesesignals may be provided to communications interface 760 via acommunications path of device 700, which may be implemented using, forexample, wire or cable, fiber optics, a phone line, a cellular phonelink, an RF link or other communications channels.

The hardware elements, operating systems and programming languages ofsuch equipment are conventional in nature, and it is presumed that thoseskilled in the art are adequately familiar therewith. Device 700 alsomay include input and output ports 750 to connect with input and outputdevices such as keyboards, mice, touchscreens, monitors, displays, etc.Of course, the various server functions may be implemented in adistributed fashion on a number of similar platforms, to distribute theprocessing load. Alternatively, the servers may be implemented byappropriate programming of one computer hardware platform.

It should be appreciated that in the above description of exemplaryembodiments of the invention, various features of the invention aresometimes grouped together in a single embodiment, figure, ordescription thereof for the purpose of streamlining the disclosure andaiding in the understanding of one or more of the various inventiveaspects. This method of disclosure, however, is not to be interpreted asreflecting an intention that the claimed invention requires morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive aspects lie in less than allfeatures of a single foregoing disclosed embodiment. Thus, the claimsfollowing the Detailed Description are hereby expressly incorporatedinto this Detailed Description, with each claim standing on its own as aseparate embodiment of this invention.

Furthermore, while some embodiments described herein include some butnot other features included in other embodiments, combinations offeatures of different embodiments are meant to be within the scope ofthe invention, and form different embodiments, as would be understood bythose skilled in the art. For example, in the following claims, any ofthe claimed embodiments can be used in any combination.

Thus, while certain embodiments have been described, those skilled inthe art will recognize that other and further modifications may be madethereto without departing from the spirit of the invention, and it isintended to claim all such changes and modifications as falling withinthe scope of the invention. For example, functionality may be added ordeleted from the block diagrams and operations may be interchanged amongfunctional blocks. Steps may be added or deleted to methods describedwithin the scope of the present invention.

The above disclosed subject matter is to be considered illustrative, andnot restrictive, and the appended claims are intended to cover all suchmodifications, enhancements, and other implementations, which fallwithin the true spirit and scope of the present disclosure. Thus, to themaximum extent allowed by law, the scope of the present disclosure is tobe determined by the broadest permissible interpretation of thefollowing claims and their equivalents, and shall not be restricted orlimited by the foregoing detailed description. While variousimplementations of the disclosure have been described, it will beapparent to those of ordinary skill in the art that many moreimplementations and implementations are possible within the scope of thedisclosure. Accordingly, the disclosure is not to be restricted exceptin light of the attached claims and their equivalents.

1-20. (canceled)
 21. A computer-implemented method for processingimages, the method comprising: obtaining, by one or more processors, atleast one image for analyzing, wherein the at least one image depicts atleast one object; storing, by the one or more processors, the at leastone image in a queue of images; inputting, by the one or moreprocessors, the at least one image to at least one of a plurality ofimage plugins; analyzing, by the one or more processors, the at leastone image via the at least one of the plurality of image plugins,wherein the at least one of the plurality of image plugins is configuredto identify one or more different aspects of the same at least oneobject depicted in the at least one image; determining, by the one ormore processors, metadata related to the at least one image based on theat least one of the plurality of image plugins; associating the metadatarelated to the at least one image with an image ID corresponding to theat least one image; filtering, by the one or more processors, the atleast one image based on one or more rule sets to generate at least onefiltered image; sorting, by the one or more processors, the at least onefiltered image to generate at least one sorted image; and causingdisplay of, by the one or more processors, the at least one sorted imagebased on an organizational sequence of a webpage, wherein the causingdisplay comprises: causing display of the at least one object in a firstdisplay area; causing display of two or more thumbnail images in asecond display area, wherein each of the two or more thumbnail imagesdepicts the one or more different aspects of the same at least oneobject; causing display of, by the one or more processors, navigationcontrols via the webpage; and causing display of, by the one or moreprocessors, the at least one sorted image according to a userinteraction with the navigation controls on the webpage.
 22. Thecomputer-implemented method of claim 21, further including: replacing,by the one or more processors, based on a user selection, the at leastone object in the first display area with an enlarged image of one ofthe two or more thumbnail images.
 23. The computer-implemented method ofclaim 21, wherein at least two of the plurality of image plugins isconfigured to identify one or more different aspects of the same atleast one object depicted in the at least one image.
 24. Thecomputer-implemented method of claim 23, wherein at least two or moreimages are stored in the queue of images and wherein the plurality ofimage plugins are arranged in a centralized location, the method furtherincluding: analyzing, in parallel, the at least two or more imagesstored in the queue of images via the at least two of the plurality ofimage plugins.
 25. The computer-implemented method of claim 24, furtherincluding: analyzing the at least one image via the at least two of theplurality of image plugins; and after the analyzing the at least oneimage via each of the at least two image plugins, removing the at leastone image from the queue of images.
 26. The computer-implemented methodof claim 21, wherein the metadata includes at least one of vehiclepresent indication, vehicle interior, vehicle exterior, vehicle degreeof rotation, vehicle interior color, vehicle exterior color, vehicleoptions, vehicle make, vehicle model, vehicle year, image quality, imagesize, or vehicle wheel size.
 27. The computer-implemented method ofclaim 21, further including: analyzing the at least one image inparallel via the plurality of image plugins.
 28. Thecomputer-implemented method of claim 21, wherein the at least one objectis a vehicle, and the one or more different aspects of the same at leastone object correspond to a side view, front view, or rear view of thevehicle, and wherein the method further includes: replacing, based on auser selection, the at least one object in the first display area withan enlarged image of one of the two or more thumbnail images.
 29. Thecomputer-implemented method of claim 21, wherein the one or more rulesets includes the metadata related to the at least one image.
 30. Thecomputer-implemented method of claim 23, wherein analyzing the at leastone image via the at least two of the plurality of image pluginsutilizes at least one object detection model or image recognition model.31. A computer system for processing images, the computer systemcomprising: a memory having processor-readable instructions storedtherein; and at least one processor configured to access the memory andexecute the processor-readable instructions, which when executed by theat least one processor configures the at least one processor to performa plurality of functions, including functions for: obtaining at leastone image, wherein the at least one image depicts at least one object;storing the at least one image in a queue of images; analyzing the atleast one image via at least one of a plurality of image plugins,wherein the at least one of the plurality of image plugins is configuredto identify one or more different aspects of the same at least oneobject depicted in the at least one image; determining metadata relatedto the at least one image based on the analyzing the at least one image;associating the metadata related to the at least one image with an imageID corresponding to the at least one image; filtering the at least oneimage based on a predetermined metadata to generate at least onefiltered image; sorting the at least one filtered image to generate atleast one sorted image; and causing display of the at least one sortedimage based on an organizational sequence of a webpage, wherein thecausing display comprises: causing display of the at least one object ina first display area; causing display of two or more thumbnail images ina second display area, wherein each of the two or more thumbnail imagesdepicts the one or more different aspects of the same at least oneobject; causing display of navigation controls via the webpage; andcausing display of the at least one sorted image according to a userinteraction with the navigation controls on the webpage.
 32. Thecomputer system of claim 31, wherein the functions further include:replacing based on a user selection, the at least one object in thefirst display area with an enlarged image of one of the two or morethumbnail images.
 33. The computer system of claim 32, wherein at leasttwo of the plurality of image plugins is configured to identify one ormore different aspects of the same at least one object depicted in theat least one image.
 34. The computer system of claim 31, wherein the atleast one object is a vehicle, and the one or more different aspects ofthe same at least one object correspond to a side view, front view, orrear view of the vehicle, and wherein the functions further include:replacing, based on a user selection, the at least one object in thefirst display area with an enlarged image of one of the two or morethumbnail images.
 35. The computer system of claim 33, wherein thefunctions further include analyzing the at least one image via each ofthe at least two image plugins, and after the analyzing the at least oneimage via each of the at least two image plugins, removing the at leastone image from the queue of images.
 36. The computer system of claim 31,wherein the metadata includes at least one of vehicle presentindication, vehicle interior, vehicle exterior, vehicle degree ofrotation, vehicle interior color, vehicle exterior color, vehicleoptions, vehicle make, vehicle model, vehicle year, image quality, imagesize, or vehicle wheel size.
 37. The computer system of claim 31,wherein the functions further include receiving the at least one imagefrom one or more merchants.
 38. The computer system of claim 31, whereinthe functions further include analyzing the at least one image inparallel via the plurality of image plugins.
 39. The computer system ofclaim 33, wherein analyzing the at least one image via the at least twoof the plurality of image plugins utilizes at least one object detectionmodel or image recognition model.
 40. A computer-implemented method forprocessing images, the method comprising: training, by one or moreprocessors, each of at least two of a plurality of image plugins byanalyzing pre-labeled images to determine metadata related to thepre-labeled images; comparing, by the one or more processors, themetadata determined by the at least two of the plurality of imageplugins to the pre-labeled images; obtaining, by the one or moreprocessors, at least one image, wherein the at least one image depictsat least one object; analyzing, by the one or more processors, the atleast one image via the at least two of the plurality of image plugins,wherein the at least two of the plurality of image plugins areconfigured to identify one or more different aspects of the same atleast one object depicted in the at least one image; determining, by theone or more processors, metadata related to the at least one image viathe at least two of the plurality of image plugins; associating themetadata related to the at least one image with an image IDcorresponding to the at least one image; filtering, by the one or moreprocessors, the at least one image based on one or more predeterminedmetadata to generate at least one filtered image; sorting, by the one ormore processors, the at least one filtered image to generate at leastone sorted image; and causing display of, by the one or more processors,the at least one sorted image based on an organizational sequence of awebpage, wherein the causing display comprises: causing display of theat least one object in a first display area; causing display of two ormore thumbnail images in a second display area, wherein each of the twoor more thumbnail images depicts the one or more different aspects ofthe same at least one object; causing display of, by the one or moreprocessors, navigation controls via the webpage; and causing display of,by the one or more processors, the at least one sorted image accordingto a user interaction with the navigation controls on the webpage.